Telephones having a speakerphone function are well known. Such telephones generally include a microphone and speaker on the telephone body. The speaker allows the voice of other parties on the line to be heard without the use of a telephone handset, and the microphone likewise allows persons in the vicinity of the speakerphone to be heard without speaking into a handset.
One problem that must be addressed in speakerphones is the that of undesirable echoes. One source of echo is the output from the speakerphone speaker—this can be picked up by the speakerphone microphone and sent back to the party at the other end of the line. The speakerphone microphone may be located on the body of the speakerphone a known distance from the speakerphone speaker, and therefore the time delay of this echo is known and the echo is relatively easy to filter. However, echoes can also be caused by indirect reflections of sound from the speakerphone speaker that bounce off walls of the room in which the speakerphone is being used. The delay between the output of the speaker and the receipt of the reflected echo can be unpredictable, and such echoes are more difficult to cancel. Removing these types of echoes is referred to as acoustic echo cancellation. Echo can also be caused by delays and impedance mismatches in a telephone network. This type of echo is referred to as line echo. Both types of echoes may lead to one or both parties to a telephone conversation hearing an annoying hum and/or a delayed repetition of their own voice, and this can be very distracting.
Methods are known for cancelling both types of echoes. However, the filters and algorithms employed for echo cancellation can require significant processing resources in order to be performed in a useful, real-time manner. This is especially true in long delay networks, such as packet-based networks, where echoes may be delayed for several seconds. In traditional echo canceller architecture, the delays in the network are compensated by increasing buffer size and thus memory requirements. Unreliable transport media, such as Internet Protocol networks, have an additional problem of packet loss, which can considerably reduce the effectiveness of an echo canceller. Packet switched networks may thus require even more processing resources.
Voice Over Internet Protocol (VOIP) telephones operate by sending packets of voice data over a network. Each telephone generally includes a processor for handling tasks such as the compression, decompression and packetizing of voice data. To reduce the cost of IP telephones, it is desirable to use general purpose processors in the IP telephones. However, these processors often do not have the processing power to implement echo cancellation, especially in the case of “tails” lasting up to three to four seconds. This problem could be addressed by using more powerful processors in each IP telephone; however, it would be desirable to provide echo cancellation in IP telephones in a manner that allows for the continued use of general purpose processors.